#ifndef STUSQL_H
#define STUSQL_H

#include <QObject>
#include <QtSql/QSqlDatabase>
#include <QMessageBox>
#include <QDebug>
#include <QCoreApplication>
#include <QSqlQuery>

struct StuInfo
{
    int id;
    QString name;
    quint8 age;
    quint16 grade;
    quint16 uiclass;
    quint32 stuid;
    QString phone;
    QString wechat;

};


struct userInfo
{
    QString username;
    QString password;
    QString aut;
};

class stuSql : public QObject
{
    Q_OBJECT

public:

    static stuSql *ptrstuSql;
    static stuSql *getinstance()
    {
        if (nullptr == ptrstuSql)
        {
            ptrstuSql = new stuSql;

        }

        return ptrstuSql;
    }

    explicit stuSql(QObject *parent = nullptr);

    //初始化
    void init();

    //查询所有学生数量
    quint32 getStuCount();

    //查询第几页学生数据
    QList<StuInfo> getPageStu(quint32 page, quint32 uicount);

    //增加学生
    bool addStu(StuInfo info);
    bool addStu(QList<StuInfo> l);

    //删除学生
    bool delStu(int id);

    //清空学生表
    void clearStuTable();

    //修改学生信息
    bool updateStuInfo(StuInfo info);

    //查询所有用户
    QList<userInfo> getAllUser();

    //查询用户名是否存在

    bool isExit(QString strUser);

    //更新用户信息
    bool updateUser(userInfo info);

    //添加个人用户
    bool addUser(userInfo info);

    //删除个人用户
    bool delUser(QString strUserName);

    void closedb();

signals:

private:
    QSqlDatabase m_db;
};

#endif // STUSQL_H
